/********************************************
 * 功能说明: 
 * 模块名称: 
 * 系统名称: 
 * 软件版权: 
 * 系统版本: 1.0.0
 * 开发人员: zhangfb
 * 开发时间: 2019/3/31 18:17
 * 审核人员: 
 * 相关文档: 
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.hyacinth.utils;

import com.google.common.collect.Maps;
import com.hyacinth.config.DBType;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;

import java.util.HashMap;
import java.util.Map;

/**
 * @author zhangfb
 * @version 1.0.0.1
 * @since JDK 1.8
 */
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class DBInfoUtil {

    /**
     * 根据数据库类型获取url
     * @param dbType 数据库类型
     * @param dbIP   ip
     * @param dbPort 端口
     * @param dbName 数据库名
     * @return url
     */
    public static String getUrl(DBType dbType, String dbIP, int dbPort, String dbName){
        String urlFormat = dbType.urlFormat();
        if (StringUtils.isNotBlank(urlFormat)) {
            Map<String, String> repMap = new HashMap<>(3);
            repMap.put("{host}", dbIP);
            repMap.put("{port}", dbPort+"");
            repMap.put("{dbname}", dbName);
            return StringUtils.replaceAll(urlFormat, repMap);
        }
        return null;
    }

    /**
     * 根据数据库类型获取驱动类名称
     * @param dbType 数据库类型
     * @return 驱动类名称
     */
    public static String getDriver(DBType dbType){
        return dbType.driverName();
    }
}
